home *** CD-ROM | disk | FTP | other *** search
/ Word Play Farm / Word Play Farm.iso / pc / movies / shared.dxr / 00506_Configuration Handlers.ls < prev    next >
Encoding:
Text File  |  1996-07-29  |  1.9 KB  |  81 lines

  1. on ReadConfig
  2.   global gVersion, gCfgName, gCfgPath, gGameData, gCanSave
  3.   set lFileObj to EMPTY
  4.   set lFileObj to FileIO(mnew, "READ", gCfgPath)
  5.   set lChex to CheckConfig(lFileObj, gCfgName, gVersion)
  6.   if lChex <> 1 then
  7.     if lChex <> 0 then
  8.       lFileObj(mdispose)
  9.     end if
  10.     set gGameData to CreateConfig()
  11.     if WriteConfig() = 0 then
  12.       set gCanSave to 0
  13.       alert("Sorry, game saving is not available")
  14.     else
  15.       set gCanSave to 1
  16.     end if
  17.   else
  18.     set lGameStr to ReadFile(lFileObj)
  19.     set gGameData to ReadData(lGameStr)
  20.     lFileObj(mdispose)
  21.   end if
  22. end
  23.  
  24. on CreateConfig
  25.   global gMaxUsers, gRecStep, gCfgName, gVersion
  26.   set lDataRecord to []
  27.   append(lDataRecord, gCfgName)
  28.   append(lDataRecord, gVersion)
  29.   append(lDataRecord, 0)
  30.   repeat with i = 1 to gMaxUsers
  31.     repeat with j = 1 to gRecStep
  32.       append(lDataRecord, EMPTY)
  33.     end repeat
  34.   end repeat
  35.   return lDataRecord
  36. end
  37.  
  38. on WriteConfig
  39.   global gCanSave, gDontSave, gCfgPath, gGameData, gDelta
  40.   if gCanSave = 0 then
  41.     return 0
  42.   end if
  43.   set lFileObj to EMPTY
  44.   set lFileObj to FileIO(mnew, "WRITE", gCfgPath)
  45.   if not objectp(lFileObj) then
  46.     beep(1)
  47.     return 0
  48.   end if
  49.   set lWriteStr to writedata(gGameData)
  50.   set lWrtReslt to lFileObj(mWriteString, lWriteStr)
  51.   lFileObj(mdispose)
  52.   if lWrtReslt = 0 then
  53.     set gDelta to 0
  54.     return 1
  55.   else
  56.     return 0
  57.   end if
  58. end
  59.  
  60. on CheckConfig pFileObj, pCfgName, pVersion
  61.   if not objectp(pFileObj) then
  62.     return 0
  63.   end if
  64.   if pFileObj(mGetLength) < 1 then
  65.     return -1
  66.   end if
  67.   set lCurPos to pFileObj(mGetPosition)
  68.   pFileObj(mSetPosition, 0)
  69.   set FileCfgName to pFileObj(mReadLine)
  70.   set FileCfgName to SearchReplace(FileCfgName, RETURN)
  71.   if FileCfgName <> pCfgName then
  72.     return -2
  73.   end if
  74.   set FileVer to value(pFileObj(mReadLine))
  75.   if FileVer <> pVersion then
  76.     return -3
  77.   end if
  78.   pFileObj(mSetPosition, lCurPos)
  79.   return 1
  80. end
  81.